﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using ENTIDADES;

namespace DATA
{
    public class MesaDAO
    {
        private static MesaDAO instance = null;
        private MesaDAO() { }
        public static MesaDAO getInstance()
        {
            if (instance == null)
            {
                instance = new MesaDAO();
            }
            return instance;
        }

        public List<Mesa> listadoMesa()
        {
            List<Mesa> lstResultado = null;
            Conexion strCNN = new Conexion();
            SqlConnection cnn = new SqlConnection(strCNN.obtenerConexion());
            cnn.Open();

            String query = "select idmesa,descripcion,estado from mesa";
            SqlCommand objComm = new SqlCommand(query, cnn);
            SqlDataReader reader = objComm.ExecuteReader();

            lstResultado = new List<Mesa>();
            while (reader.Read())
            {
                Mesa objMesa = new Mesa();
                objMesa.idmesa = Convert.ToInt32(reader["idmesa"]);
                objMesa.descripcion = (reader["descripcion"]).ToString();
                objMesa.estado = Convert.ToBoolean(reader["estado"]);

                lstResultado.Add(objMesa);
            }
            cnn.Close();

            return lstResultado;
        }

        public Boolean UpdateEstadoMesa(Int32 idMesa, Int32 estado) {
            Boolean Exito = false;

            Conexion strCNN = new Conexion();
            SqlConnection cnn = new SqlConnection(strCNN.obtenerConexion());
            cnn.Open();

            String query = "update mesa set estado = "+ estado +" where idmesa ="+ idMesa;
            SqlCommand objComm = new SqlCommand(query, cnn);
            Exito = Convert.ToBoolean(objComm.ExecuteNonQuery());
            
            cnn.Close();

            return Exito;
        } 

        public Mesa get(int idMesa)
        {
            Mesa objMesa = null;

            Conexion strCNN = new Conexion();
            SqlConnection cnn = new SqlConnection(strCNN.obtenerConexion());
            cnn.Open();
            String query = "select descripcion,estado from mesa where idmesa=" + idMesa;
            SqlCommand objComm = new SqlCommand(query, cnn);
            SqlDataReader reader = objComm.ExecuteReader();

            if (reader.Read())
            {
                objMesa = new Mesa();
                objMesa.idmesa = idMesa;
                objMesa.descripcion = (reader["descripcion"]).ToString();
                objMesa.estado = Convert.ToBoolean(reader["estado"]);
            }
            cnn.Close();

            return objMesa;
        }
    }
}
